Maps for UWP
オフラインマップ
C1Mapsの使い方 > オフラインマップ

Maps for UWP を使用すると、簡単にオフラインマップを利用できます。

このサンプルには、次のカスタム OfflineMapsSource クラスの実装が含まれています。

C#
コードのコピー
    public class OfflineMapsSource : C1MultiScaleTileSource
{
private const string uriFormat = @"ms-appx:/Resources/OfflineMaps/
        {Z}/{X}/{Y}.png";

public OfflineMapsSource()
: base(0x8000000, 0x8000000, 0x100, 0x100, 0)
{ }

protected override void GetTileLayers(int tileLevel, int tilePositionX, 
        int tilePositionY, IList<object> source)
{
if (tileLevel > 8)
{
var zoom = tileLevel - 8;
var uri = uriFormat;uri = uri.Replace("{X}", tilePositionX.ToString());
uri = uri.Replace("{Y}", tilePositionY.ToString());
uri = uri.Replace("{Z}", zoom.ToString());
source.Add(new Uri(uri));
}
}
}

この実装クラスは、ローカルの Resource フォルダからタイル画像をロードします。このクラスは C1MultiScaleTileSource を継承します。

オフラインマップでカスタムタイルを使用するには、C1Maps の Source プロパティを設定する必要があります。このサンプルでは、OnMapsLoaded イベントが作成され、このイベント内で Source プロパティが設定されます。

C#
コードのコピー
void OnMapsLoaded(object sender, RoutedEventArgs e)
{
this.maps.Source = new OfflineMapsSource();
}

このように、オフライン C1Maps コントロールの作成は簡単です。